jak zjistit, ze se vypinaji win v onclose(query)?
Otázka od: petr palicka
24. 8. 2004 8:26
Zdravim,
potrebuji v OnCloseQuery zjistit, zda se jedna o proste ukonceni
programu, nebo se shazuje OS. Podle toho se bud na neco zeptam, nebo ne.
dekuji
Peca
Odpovedá: Robert Suska
24. 8. 2004 9:04
Ahoj
Musis reagovat na spravy WM_QUERYENDSESSION alebo WM_ENDSESSION. Pokial
chces "zastavit" napr. restart tak musis osetrit spravu WM_QUERYENDSESSION.
Viac info tu
http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/sysinfo/base/wm_queryendsession.asp
a tu
http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/sysinfo/base/wm_endsession.asp
a konkretny priklad
private
procedure WMQueryEndSession (var Msg : TWMQueryEndSession); message
WM_QueryEndSession;
end;
Implementation
procedure TForm1.WMQueryEndSession (var Msg : TWMQueryEndSession);
begin
if MessageDlg('Close Windows now?',
mtConfirmation,
[mbYes,mbNo], 0) = mrNo then
Msg.Result := 0
else
Msg.Result := 1;
end;
S pozdravom,
Robo
> potrebuji v OnCloseQuery zjistit, zda se jedna o proste ukonceni
> programu, nebo se shazuje OS. Podle toho se bud na neco zeptam, nebo ne.
>
> dekuji
>
> Peca
Odpovedá: Marian Nykel
24. 8. 2004 9:06
Zdravim,
zkus si odchytit zpravy o ukoncovani windows a v jejich zpracovani provest, co
potrebujes - neco takoveho:
procedure WMQueryEndSession(var Msg: TMessage); message WM_QUERYENDSESSION;
procedure WMEndSession(var Msg: TMessage); message WM_ENDSESSION;
...
procedure TfrmApp.WMEndSession(var Msg: TMessage);
begin
//neco...
end;
procedure TfrmApp.WMQueryEndSession(var Msg: TMessage);
begin
//neco...
end;
Zdravi
MN
petr palicka wrote:
> Zdravim,
> potrebuji v OnCloseQuery zjistit, zda se jedna o proste ukonceni
> programu, nebo se shazuje OS. Podle toho se bud na neco zeptam, nebo ne.
>
> dekuji
>
> Peca